package com.dotflat.staffExtend.po;

import com.dotflat.rest.PO.AreableObjectBasePO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Transient;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper=true)
public class StaffExtendInfoPO2 extends AreableObjectBasePO {

	@ApiModelProperty(value = "员工id，修改时需要，创建时不要")
	private String staffId;

	//
	@ApiModelProperty(value = "员工姓名", required = true)
	private String realName;

	@ApiModelProperty(value = "员工id", required = true)
	private String mobile;

	@ApiModelProperty(value = "性别", required = true)
	private Integer gender;

	@ApiModelProperty(value = "头像", required = true)
	private String headImgUrl;

	@ApiModelProperty(value = "角色", required = true)
	private String roleId;

	@ApiModelProperty("编号")
	private Integer seq;

	@ApiModelProperty("部门")
	private String department;

	@ApiModelProperty("岗位")
	private String position;

	@ApiModelProperty("生日")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date birthday;

	@ApiModelProperty("入职日期")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date joinAt;

	@ApiModelProperty("转正日期")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date fullAt;

	@ApiModelProperty("身份证号")
	private String idCard;

	@ApiModelProperty("户籍地址")
	private String idCardAddress;

	@ApiModelProperty("邮箱地址")
	private String email;

	@ApiModelProperty("婚姻状况 0：未知，1.未婚，2.已婚，3.离异，4丧偶")
	private Integer marriage;

	@ApiModelProperty("居住地址")
	private String address;

	@ApiModelProperty("擅长")
	private String goodAt;
	@ApiModelProperty(value = "老师类型（1.主班，2.辅班，3.保育）")
	private Integer types;

	@ApiModelProperty("体检报告")
	private List<StaffExtendHealthyPO> healthies;

	@ApiModelProperty("学习履历")
	private List<StaffExtendCareerPO> careers;

	@ApiModelProperty("证件")
	private List<StaffExtendLicensePO> licenses;

	@ApiModelProperty("家庭成员")
	private List<StaffExtendRelationPO> relations;

	@ApiModelProperty("疫苗记录")
	private List<StaffExtendVaccinePO> vaccines;

	/** 出生日期 */
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty(value="出生日期")
	private Date birthTime;

	/** 年龄 */
	@ApiModelProperty(value="年龄")
	private Integer age;

	/** 家庭住址 */
	@ApiModelProperty(value="家庭住址")
	private String homeAddress;

	/** 现住地址   湖南省-长沙市-雨花区-香樟路云集大厦3栋 */
	@ApiModelProperty(value="现住地址")
	private String currentAddress;

	@ApiModelProperty(value="省")
	private String province;

	@ApiModelProperty(value="市")
	private String city;

	@ApiModelProperty(value="区")
	private String district;

	@ApiModelProperty(value="详细地址")
	private String detailedAddress;

	/** 紧急联系人 */
	@ApiModelProperty(value="紧急联系人")
	private String emergencyName;

	/** 紧急联系人电话 */
	@ApiModelProperty(value="紧急联系人电话")
	private String emergencyMobile;

	/** 工作形象照 */
	@ApiModelProperty(value="工作形象照")
	private String workFormPhoto;

	/** 附件 */
	@ApiModelProperty(value="附件")
	private String file;

	/** 联系方式 */
	@ApiModelProperty(value="联系方式")
	private String  contactInformation;

	/** 民族 */
	@ApiModelProperty(value="民族")
	private String nationality;

	/** 学历证书 */
	@ApiModelProperty(value="学历证书")
	private String certificate;

	/** 从业证书 */
	@ApiModelProperty(value="从业证书")
	private String certificateEmployment;

//	@ApiModelProperty("添加教师拓展信息，存放教师工作履历、教育信息等：" +
//			"Map<1,教育信息>" +
//			"Map<2,从业证书>" +
//			"Map<3,工作履历>" +
//			"Map<4,工作信息>")
//	private Map<Integer,List<StaffChildPO>> staffChildMap;

	@ApiModelProperty("教育信息 type=1")
	private List<StaffChildPO> staffChildPOList1;

	@ApiModelProperty("从业证书 type=2")
	private List<StaffChildPO> staffChildPOList2;

	@ApiModelProperty("工作履历 type=3")
	private List<StaffChildPO> staffChildPOList3;

	@ApiModelProperty("教育信息 type=4")
	private List<StaffChildPO> staffChildPOList4;

//	@ApiModelProperty("体检报告 type=5")
//	private List<StaffChildPO> staffChildPOList5;

//	@ApiModelProperty("无犯罪证明 type=6")
//	private List<StaffChildPO> staffChildPOList6;


	/** 体检报告开始时间 */
	@ApiModelProperty(value="体检报告开始时间")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date physicalReportStart;

	/** 体检报告结束时间 */
	@ApiModelProperty(value="体检报告结束时间")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date physicalReportEnd;

	/** 体检报告 */
	@ApiModelProperty(value="体检报告")
	private String physicalReportFile;

	/** 无犯罪证明开始时间 */
	@ApiModelProperty(value="无犯罪证明开始时间")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date certificateClearanceStart;

	/** 无犯罪证明结束时间 */
	@ApiModelProperty(value="无犯罪证明结束时间")
	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date certificateClearanceEnd;

	/** 无犯罪证明 */
	@ApiModelProperty(value="无犯罪证明")
	private String certificateClearanceFile;

	@ApiModelProperty(value="简介")
	@Size(max = 500,message = "简介长度不能超过500字")
	private String introduction;

}
